www.gusucode.com > 24Beta 虚拟主机版 1.0.0 Beta源码程序 > 24Beta 虚拟主机版 1.0.0 Beta源码程序/24Beta-1.0.0-vhost/library/framework/web/CTheme.php
<?php /** * CTheme class file. * * @author Qiang Xue <qiang.xue@gmail.com> * @link http://www.yiiframework.com/ * @copyright Copyright © 2008-2009 Yii Software LLC * @license http://www.yiiframework.com/license/ */ /** * CTheme represents an application theme. * * @author Qiang Xue <qiang.xue@gmail.com> * @version $Id: CTheme.php 837 2009-03-14 11:51:40Z qiang.xue $ * @package system.web * @since 1.0 */ class CTheme extends CComponent { private $_name; private $_basePath; private $_baseUrl; /** * Constructor. * @param string name of the theme * @param string base theme path * @param string base theme URL */ public function __construct($name,$basePath,$baseUrl) { $this->_name=$name; $this->_baseUrl=$baseUrl; $this->_basePath=$basePath; } /** * @return string theme name */ public function getName() { return $this->_name; } /** * @return string the relative URL to the theme folder (without ending slash) */ public function getBaseUrl() { return $this->_baseUrl; } /** * @return string the file path to the theme folder */ public function getBasePath() { return $this->_basePath; } /** * @return string the path for controller views. Defaults to 'ThemeRoot/views'. */ public function getViewPath() { return $this->_basePath.DIRECTORY_SEPARATOR.'views'; } /** * @return string the path for system views. Defaults to 'ThemeRoot/views/system'. */ public function getSystemViewPath() { return $this->getViewPath().DIRECTORY_SEPARATOR.'system'; } /** * Finds the view file for the specified controller's view. * @param CController the controller * @param string the view name * @return string the view file path. False if the file does not exist. */ public function getViewFile($controller,$viewName) { return $controller->resolveViewFile($viewName,$this->getViewPath().'/'.$controller->getUniqueId(),$this->getViewPath()); } /** * Finds the layout file for the specified controller's layout. * @param CController the controller * @param string the layout name * @return string the layout file path. False if the file does not exist. */ public function getLayoutFile($controller,$layoutName) { $basePath=$this->getViewPath(); if(empty($layoutName)) { $module=$controller->getModule(); while($module!==null) { if($module->layout===false) return false; if(!empty($module->layout)) break; $module=$module->getParentModule(); } if($module===null) return $controller->resolveViewFile(Yii::app()->layout,$basePath.'/layouts',$basePath); else { $basePath.='/'.$module->getId(); return $controller->resolveViewFile($module->layout,$basePath.'/layouts',$basePath); } } else { if(($module=$controller->getModule())!==null) $basePath.='/'.$module->getId(); return $controller->resolveViewFile($layoutName,$basePath.'/layouts',$basePath); } } }